import type {
  AjaxPagingResult,
  UserInfo,
  UserLoginResult,
  UserQueryListParams,
  UserQueryListResult,
  UserSaveOrUpdateParams,
  UserUpdatePassWordParams,
} from '@/types'
import { PAGING } from '@/constant'

const controller = getAjaxBaseUrl('/sysUser')

/** 登录 */
export function login(params: {
  loginName: string
  passWord: string
}) {
  return post<UserLoginResult | null>(
    `${controller}/login`,
    params,
  )
}

/** 查询用户列表 */
export function queryList(params: UserQueryListParams = PAGING.PARAMS) {
  return post<AjaxPagingResult<UserQueryListResult[] | null>>(
    `${controller}/queryList`,
    params,
  )
}

/** 新增或更新用户 */
export function saveOrUpdate(params: Partial<UserSaveOrUpdateParams>) {
  return post(`${controller}/saveOrUpdateUser`, params)
}

/** 删除用户 */
export function deleteUser(id: number) {
  return get(`${controller}/deleteUser?id=${id}`)
}

/** 批量更新  */
export function batchUpdate(params: Partial<UserInfo>[]) {
  return post(`${controller}/batchUpdateUser`, params)
}

/** 用户修改密码 */
export function updatePassWord(params: UserUpdatePassWordParams) {
  return post(`${controller}/updatePassWord`, params)
}

/** 查询当前企业用户列表 */
export function queryListByTenantId(userName?: string) {
  return get<UserQueryListResult[] | null>(
    `${controller}/queryListByTenantId`,
    {
      userName,
    },
  )
}

/** 重置密码 */
export function resetPassword(id: number) {
  return post(`${controller}/reset/password/${id}`)
}
